package com.zy.cat.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.zy.cat.entity.mall.TKTLJGoodsOrders;
import com.zy.cat.entity.wy.TKConvertResp;

/**
 * 
 * @info 异步处理
 * @author Link
 * @date 2019-10-30 15:24
 */
public interface AsyncService {
	
	
	/**
	 * 
	 * @info 发送微信模板消息
	 * @author Link
	 * @date 2020-01-14 10:49
	 * @param access_token	微信模板消息accessToken 通过 cacheService.getWechatAccessToken() 获取
	 * @param touser	接收消息者，mongoDB获取对应的openid
	 * @param url		消息点击后访问的url，默认""
	 * @param datas		消息体，详见例子
	 * @param template_id 消息模板ID
	 */
	void templateMSG(String access_token,String touser, String url,List<String> datas,String template_id);

	/**
	 * 
	 * @info 异步更新
	 * @author Link
	 * @date 2019-11-12 10:13
	 * @param unionid
	 * @param encrypt
	 * @param icon
	 * @param icon2 
	 */
	void updateCatDevWeInfo(String unionid, String openid);

	/**
	 * 
	 * @info 异步存储用户神奇便利店的抽奖信息
	 * @author Link
	 * @date 2019-11-16 15:57
	 * @param cvsInfo
	 */
	void insertCVSGameInfo(int rtype, String pid);
	
	/**
	 *  异步存储大转盘数据
	 * @author lipengchao
	 * @param pid 用户ID
	 * @param type 类型标识，0-转盘抽奖现金豆数(不含翻倍)增加、1-额外奖励获取现金豆数增加、2-今日抽奖次数增加、3-转盘抽奖得到现金豆数(含翻倍)增加、4-礼包数增加、5-额外奖励进度
	 * @param obj 参数
	 */
	void insertTrunDrawInfo(int rtype, String pid);

	/**
	 * 
	 * @info 存储刮刮卡每日游戏信息
	 * @author lipengchao
	 * @date 2019-11-20 10:34
	 * @param rtype
	 * @param pid
	 */
	void insertCardGameInfo(int rtype, String pid);

	/**
	 * 
	 * @info 存储商品补贴红包信息
	 * @author Link
	 * @date 2019-11-25 09:51
	 * @param pid
	 * @param rid
	 * @param sid
	 * @param fcode
	 */
	void setGoodsSubsidyHistory(int rtype,int ftype,String pid, String rid, String sid, long fcode);

	/**
	 * 存储用户优惠券信息
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param ftype
	 * @param pid
	 * @param tkConvert
	 */
	void setGoodsCouponHistory(int ftype, String pid, TKConvertResp tkConvert);
	
	/**
	 * 
	 * @info 异步更新邀请奖励记录
	 * @author xiake
	 * @date 2019-11-12 10:13
	 * @param pid 邀请人的pid
	 * @param type 操作类型,0.删除 ,1.增加
	 * @param amount 奖励金额(分)
	 * @param name 被邀请人名称
	 * @param index 奖励任务, 1，xxx注册成功。2，xxx第二天打开APP。3.xxx第三天打开APP。4，xxx购物奖励金
	 */
	void updateCatDevInviteAwardRecord(String pid,int type,long amount,String name,int index);

	/**
	 * 记录登录IP地址
	 * @param request
	 */
	void insertLoginIp(HttpServletRequest request,String pid);
	
	/**
	 * 更新用户类型
	 * @date 2020-03-17 06:29:14 
	 * @param pid
	 * @param utype
	 */
	void updateCatDevUtype(String pid,int utype);

	/**
	 * 用户订单已推送，移除新增订单表
	 * @author lipengchao
	 * @date 2020-05-14 02:24:27 
	 * @param pid
	 */
	void deleteNewAddOrderHistory(String pid);

	/**
	 * 异步插入淘礼金订单信息
	 * @info 
	 * @author Link
	 * @date 2020-06-17 16:03
	 * @param tktljGoodsOrders
	 */
	void insertTLJGoodsInfo(TKTLJGoodsOrders tktljGoodsOrders);

	/**
	 * 更新商品下线
	 * @info 
	 * @author Link
	 * @date 2020-06-17 16:19
	 * @param sid
	 * @param msgInfo
	 */
	void offLineTLJGoods(String sid, String msgInfo);
	
	/**
	 * 记录用户第一次浏览淘礼金的时间
	 * @info 
	 * @author Link
	 * @date 2020-06-19 10:46
	 * @param pid
	 */
	void setTLJViewTime(String pid);

	/**
	 * 更新反馈已答复数据
	 * @author lipengchao
	 * @date 2020-08-05 05:08:33 
	 * @param appId
	 * @param userid
	 */
	void updateFeedbackHistory(Integer appId, String userid);

	/**
	 * 开启天天抽奖
	 * @author lipengchao
	 * @date 2020-08-27 09:48:12 
	 * @param drawId
	 */
	void startDailyDraw(Integer drawId);
	
}
